ttMigrateまたはttBackupユーティリティを使用して、データ・ストアを外部ファイルにエクスポートし、変更したデータ・ストアをリストアすることで、オフライン・アップグレードを実行できます。このような更新手順を実行するには、すべてのアプリケーションをデータ・ストアから切断し、共有メモリーからデータ・ストアをアンロードする必要があります。継続的な接続を必要とするアプリケーションについては、「レプリケーションを使用したオンライン・アップグレードの実行」を参照してください。
注意: | アップグレードされるデータ・ストアをレプリケートする場合は、ttMigrateを使用して、データ・ストアをバージョン間で移動する必要があります。また、ttMigrate -r -rename オプションを使用して、表の所有者の名前を変更する場合は、レプリケーション・スキームに関連している他のすべてのデータ・ストアの表の所有者の名前も変更する必要があります。 |
TimesTenデータ・ストアのエクスポートには、ttMigrateまたはttBackupユーティリティを使用できます。ttMigrateユーティリティは、リリースに依存しないより柔軟な形式でデータ・ストアをエクスポートします。ttBackupユーティリティは、データ・ストアのイメージ・コピーをエクスポートするため、より高速です。データ・ストアを異なるマシンまたはディレクトリに移動する場合は、ttBackupユーティリティを使用します。次の処理を行うには、ttMigrateユーティリティを使用する必要があります。
オフライン・アップグレードの一般的な手順は、次のとおりです。
-c
および-noRepUpgrade
オプションを指定してttMigrateを使用するか、またはttBackupを使用してデータ・ストアをバックアップします。-r
および-noRepUpgrade
オプションを指定してttMigrateを使用するか、またはttRestoreを使用して、バックアップしたデータ・ストアをTimesTenの新しいリリースにリストアします。注意: | ttMigrateを使用した後は、リストア先のデータ・ストアのすべての自動リフレッシュ・キャッシュ・グループでAUTOREFRESH STATEがOFFに設定されます。ALTER CACHE GROUP文を使用して、AUTOREFRESH STATEをONに設定し直してください。 |
TimesTenデーモンは、データ・ストアのチェックポイント・ファイルのフルパス名を使用してデータ・ストアを識別します。TimesTenデータ・ストアを別のディレクトリに移動するには、ttBackupユーティリティを使用してデータ・ストアをバックアップし、新しいデータ・ストアのパス名を示す新しいDSN定義を作成します。その後で、ttRestoreを使用して、データ・ストアを新しい場所にリストアします。新しい場所でデータ・ストアが適切に機能することを確認してから、ttDestroyを使用してディスク領域を解放し、以前のデータ・ストアを削除します。
たとえば、一時記憶域として/tmp/dump
ディレクトリを使用し、/old/SalesData/sales
のデータ・ストアSalesData
("DSN=SalesData
")を、NewSalesData
("DSN=NewSalesData"
)という名前で/new/SalesData/sales
に移動するには、次のコマンドを使用します。
mkdir /tmp/dump
ttBackup -dir /tmp/dump -fname salesdata "DSN=SalesData"
NewSalesData
データ・ストアのDSN定義を作成して、新しいデータ・ストアのパス/new/SalesData/sales/NewSalesData
を指定します。ttRestore -dir /tmp/dump -fname salesdata "DSN=NewSalesData"
(NewSalesData
が正常に動作することを確認します。)
rm -r /tmp/dump
ttDestroy /old/SalesData/sales/SalesData
SalesData
データ・ストアのDSN定義を削除します。注意: | データ・ストアをレプリケートするように構成した場合、レプリケーションを再構成する必要があります。 |
ttBackupおよびttRestoreユーティリティを使用して、同じCPUアーキテクチャを持ち、同じオペレーティング・システムを実行している2つのマシン間でデータ・ストアを移動することができます。
注意: | レプリケートしたデータ・ストアを他のマシンに移動する前に、TimesTenレプリケーションを実行しておく必要があります。この手順については、オラクル社カスタマ・サポート・センターにお問い合せください。 |
CPUアーキテクチャとオペレーティング・システムが同じシステム間でデータ・ストアをコピーするには、次の手順を実行します。
たとえば、ソース・システムの/ds/Sales/Data
のデータ・ストアsalesdata
を、宛先システムの/data/Sales/View
のデータ・ストアsalesview
に移動するには、次のコマンドを使用します。この例では、ttBackupの-o
フラグを使用して、バックアップに標準出力を適用します。-o
フラグを使用すると、バックアップは単一のファイルに格納され、ネットワークを介して他のシステムに簡単にコピーすることができます。他のシステムにデータ・ストアをコピーした後で、新しいデータ・ストアのコピーに簡単にアクセスできるように、データ・ソース名を作成する必要があります。
データ・ストアに特定のサイズの永続パーティション(PermSize DSN属性で示される)を定義した場合は、表または行を削除しても、それより小さいサイズでロードすることはできません。ttBackupで作成したデータ・ストアのコピーにも、データ・ストアの永続パーティションのサイズが適用されます。
割り当てられたデータ・ストアの永続パーティションのサイズを小さくするには、-noRepUpgrade
オプションを指定したttMigrateユーティリティを使用してコピーを保存し、より小さい永続パーティションのサイズを指定してデータ・ストアを再作成してから、データをリストアします。
注意: | データ・ストアの永続パーティションのサイズは、現在、データ・ストアに格納されているデータで実際に必要なサイズより小さくすることはできません。この値は、表sys.monitor のperm_in_use_size 列を問い合せることによって判断できます。 |
データ・ストアの永続パーティションのサイズを小さくするには、次の手順を実行します。
次に示す手順では、データ・ストアのサイズを400MBから100MBに縮小します。データ・ストアは/ds/Sales/Data
に格納されており、データ・ソース名(DSN)はsalesdata
です。
ttMigrate -c DSN=salesdata -noRepUpgrade /tmp/salesbackup
ttDestroy /ds/Sales/Data
salesdata
を更新して、サイズを100MBにします。詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のデータ・ストアのサイズ変更に関する項を参照してください。ttMigrate -r "DSN=salesdata;AutoCreate=1" -noRepUpgrade
/tmp/salesbackup
注意: | DSNのTempSize属性を変更し、データ・ストアをメモリーからアンロードしてから再接続することで、データ・ストアの一時パーティションのサイズを変更することが可能です。データ・ストアをメモリーからアンロードする手順については、「データ・ストアのアンロード」を参照してください。 |
32-bitのTimesTenデータ・ストアの内部形式は、64-bitの形式とは異なります。32-bitのデータ・ストアを64-bitのデータ・ストアに変換するには、次の手順を実行します。
noRepUpgrade
オプションを指定して使用し、32-bitのデータ・ストアをエクスポートします。 noRepUpgrade
オプションを指定して使用し、手順1で作成したファイルを64-bitデータ・ストアのDSNにインポートします。 たとえば、32-bitデータ・ストアのDSNがsalesdata32
で、64-bitデータ・ストアのDSNがsalesdata64
であると想定します。TimesTenの32-bitインスタンスが/opt/TimesTen/giraffe32
に、64-bitインスタンスが/opt/TimesTen/giraffe64
にインストールされているとすると、必要な手順は次のとおりです。
/opt/TimesTen/giraffe32/bin/ttMigrate
-c DSN=salesdata32
-noRepUpgrade
/tmp/salesbackup
/opt/TimesTen/giraffe64/bin/ttMigrate -r
"DSN=salesdata64;AutoCreate=1"
-noRepUpgrade
/tmp/salesbackup
注意: | TimesTenは、32-bitおよび64-bitのデータ・ストア間でのレプリケーションをサポートしません。 |
TimesTenの複数のメジャー・リリースを、システムに同時にインストールすることができます。ただし、あるメジャー・リリースで作成したTimesTenのデータ・ストアには、異なるメジャー・リリースのアプリケーションから直接アクセスすることはできません。たとえば、TimesTenのメジャー・リリース間でのデータの移行を、TimesTen 5.1から7.0で行う場合、ttMigrateユーティリティを使用して以前のリリースのデータをエクスポートし、さらにttMigrateユーティリティを使用して新しいリリースからインポートする必要があります。このアップグレードの手順は、「32-bitおよび64-bitのデータ・ストア間での移動」の手順に似ています。
互いにレプリケートする2つ以上のデータ・ストアをアップグレードする必要がある場合は、レプリケーションがアップグレート中およびアップグレード後も確実に動作し続けるように、いくつかの追加の手順を実行する必要があります。たとえば、レプリケートする2つのデータ・ストア(ホスト・マシンmasterhost
のmaster1
とホスト・マシン subscriberhost
のsubscriber1
)をTimesTenリリース5.1からTimesTenリリース7.0に移行する場合、次の手順を実行します。
masterhost
で、5.1リリースのttAdminユーティリティを使用して、データ・ストアのレプリケーション・デーモンを停止します。ttAdmin -repStop master1
-c
オプションを指定して使用し、データ・ストアmaster1
をバイナリ・ファイルにバックアップします。ttMigrate -c DSN=master1 master1.bak
master1
を破棄します。データ・ストアのファイルは、data_store_pathディレクトリに格納されています。ttDestroy /data_store_path/master1
-r
オプションを指定して使用し、データ・ストアmaster1
をバイナリ・ファイルからリストアします。データ・ストアをリストアすると、自動的にリリース5.1からリリース7.0にアップグレードされます。非常に大きいデータ・ストアをリストアする場合は、ttMigrateに-C
オプションを使用して、データ・ストアに対して定期的にチェックポイント操作を実行します。操作が完了する前にいくつかのポイントでリストアが失敗する場合は、これによって時間が節約されます。詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のチェックポイントに関する項を参照してください。ttMigrate -r -C 20 DSN=master1 master1.bak
ttAdmin -repStart master1
この時点で、リリース7.0のデータ・ストアmaster1
とリリース5.1のデータ・ストアsubscriber1
の間でレプリケーションが行われます。
ここで、データ・ストアsubscriber1
をリリース5.1からリリース7.0にアップグレードします。次の手順を実行します。
subscriberhost
で、リリース5.1のttAdminユーティリティを使用して、レプリケーション・デーモンを停止します。 ttAdmin -repStop subscriber1
subscriber1
を破棄します。データ・ストアのファイルは、data_store_pathディレクトリに格納されています。ttDestroy data_store_path/subscriber1
-duplicate
オプションを指定して使用し、レプリケーションによりデータ・ストアsubscriber1
をデータ・ストアmaster1
から複製します。 ttRepAdmin -duplicate -from master1 -host masterhost
subscriber1
ttAdmin -repStart subscriber1
これで、データ・ストアがアップグレードされ、互いにレプリケートされました。